API Reference
Base.copy
— MethodBase.copy(model_copy::ModelEC)
Create a copy of a ModelEC opject
Arguments
model_copy::ModelEC
: model to copy
Base.deepcopy
— MethodBase.deepcopy(model_copy::ModelEC)
Create a deepcopy of a ModelEC opject
Arguments
model_copy::ModelEC
: model to copy
Base.zero
— MethodBase.zero(::ModelEC)
Function zero to represent the empty ModelEC
EnergyCommunity._jump_to_dict
— Method_jump_to_dict
Function to turn a JuMP model to a dictionary
EnergyCommunity._print_summary
— Method_print_summary(io::IO, model::AbstractEC)
Print a plain-text summary of model
to io
.
EnergyCommunity._verify_data
— Method_verify_data(data::Dict)
Function to verify the data loaded from the disk (Not yet implemented)
EnergyCommunity._verify_users_data
— Method_verify_users_data(users_data::Dict)
Function to verify the users data loaded from the disk
EnergyCommunity.add_EC_economics_summary!
— Methodadd_EC_economics_summary!(output_list::Vector, ECModel::AbstractEC)
Function to create the output dataframe of the economics of the EC
EnergyCommunity.add_EC_peak_summary!
— Methodadd_EC_peak_summary!(output_list::Vector, ECModel::AbstractEC)
Function to create the output dataframe of peak power for the EC
EnergyCommunity.add_branching_priorities!
— Methodadd_branching_priorities!(ECModel::AbstractEC, ::Any) end
General fallback for branching priorities
EnergyCommunity.add_info_solution_summary!
— Methodadd_info_solution_summary!(output_list::Vector, ECModel::AbstractEC)
Utility function to create the dataframe to report the status of the optimization. It adds a dataframe named info_solution
to output_list
with the solve time and the termination status of the optimization.
Arguments
output_list::Vector
: The list of dataframes to be savedECModel::AbstractEC
: The EC model to be built
EnergyCommunity.add_notations!
— Methodadd_notations!(ECModel::AbstractEC, ::Any)
General fallback for notations
EnergyCommunity.add_users_design_summary!
— Methodadd_users_design_summary!(output_list::Vector, ECModel::AbstractEC, user_set::AbstractVector)
Utility function to create the output dataframe of design capacity. It adds a dataframe with the peak demand, yearly demand, and optimal size of the system for each user.
Arguments
output_list::Vector
: The list of dataframes to be savedECModel::AbstractEC
: The EC model to be builtuser_set::AbstractVector
: The user set to be considered
EnergyCommunity.add_users_economics_summary!
— Methodadd_users_economics_summary!(output_list::Vector, ECModel::AbstractEC, user_set::AbstractVector)
Function to create the output dataframe of the users' economics. It adds a dataframe with the NPV, CAPEX, OPEX, yearly revenues, and other economic indicators for each user.
Arguments
output_list::Vector
: The list of dataframes to be savedECModel::AbstractEC
: The EC model to be builtuser_set::AbstractVector
: The user set to be considered
EnergyCommunity.add_users_peak_summary!
— Methodadd_users_peak_summary!(output_list::Vector, ECModel::AbstractEC, user_set::AbstractVector)
Function to create the output dataframe of peak power. It adds a dataframe with the peak power of each user for each peak period.
Arguments
output_list::Vector
: The list of dataframes to be savedECModel::AbstractEC
: The EC model to be builtuser_set::AbstractVector
: The user set to be considered
EnergyCommunity.asset_names
— MethodFunction to get the list of the assets for a user
EnergyCommunity.asset_names
— MethodFunction to get the list of the assets for a user in a list of elements
EnergyCommunity.asset_names
— MethodFunction to get the list of the assets for a user
EnergyCommunity.asset_names_ex
— MethodFunction to get the list of the assets for a user in a list of elements except a list of given types
EnergyCommunity.asset_type
— MethodFunction to get the asset type of a component
EnergyCommunity.build_base_model!
— Methodbuild_base_model!(ECModel::AbstractEC, optimizer)
Creates the base optimization model for all the EC models
Arguments
ECModel
: EC model objectoptimizer
: optimizer object; any optimizer from JuMPuse_notations
: boolean; if true, the model will be created using the direct mode to create the JuMP model
Returns
It returns the ECModel object with the base model created
EnergyCommunity.build_base_utility!
— Methodbuild_base_utility!(ECModel::AbstractEC, base_group::AbstractGroupANC; base_model=nothing)
When in the CO case the ANC model is used as base case, then this function builds the corresponding constraint
Arguments
ECModel::AbstractEC
: Cooperative EC Model of the EC to study.base_group::AbstractGroupANC
: Type of the base case to considerbase_model::ModelEC
: Model of the base case to consider
Returns
BaseUtility
: JuMP expression of the base utility
EnergyCommunity.build_base_utility!
— Methodbuild_base_utility!(ECModel::AbstractEC, base_group::AbstractGroupNC; base_model=nothing)
When in the CO case the NC model is used as base case, then this function builds the corresponding constraint
Arguments
ECModel::AbstractEC
: Cooperative EC Model of the EC to study.base_group::AbstractGroupNC
: Type of the base case to considerbase_model::ModelEC
: Model of the base case to consider
Returns
BaseUtility
: JuMP expression of the base utility
EnergyCommunity.build_base_utility!
— Methodbuild_base_utility!(ECModel::AbstractEC, no_aggregator_group::AbstractGroupANC)
When in the CO case the ANC model is used as reference case for when the aggregator is not in the group, then this function builds the corresponding constraint
Not implemented
EnergyCommunity.build_least_profitable!
— Methodbuild_least_profitable!(
ECModel::AbstractEC, base_group::AbstractGroup;
no_aggregator_group::AbstractGroup=GroupNC(),
add_EC=true,
relax_combinatorial=false,
use_notations=false,
base_model=nothing,
)
Function to build the model to identify the least profitable coalition. This function builds the model in the ECModel object to identify the least profitable coalition using a MILP model.
Arguments
ECModel::AbstractEC
: EC Model of the EC to study.base_group::AbstractGroup
: Type of the base case to considerno_aggregator_group::AbstractGroup=GroupNC()
: Type of the base case to consider when no aggregator is in the coalitionadd_EC::Bool=true
: Flag to include the EC in the coalitionrelax_combinatorial::Bool=false
: Flag to relax the combinatorial part of the MILP modeluse_notations::Bool=false
: Flag to use notations in the modelbase_model::ModelEC=nothing
: Model of the base case to consider
EnergyCommunity.build_model!
— Methodbuild_model!(ECModel::AbstractEC; kwargs...)
Build the mathematical problem for the EC.
EnergyCommunity.build_model!
— Methodbuild_model!(group_type::AbstractGroup, ECModel::AbstractEC, optimizer; use_notations=false)
Build function model for generic EnergyCommunity model. This functions triggers specific functions for the different aggregation types.
In particular, first the function build_base_model!
is called to build the base model of the EC. Then, the function build_specific_model!
is called to build the specific model of the EC dependin on the group type. Finally, the function set_objective!
is called to set the objective of the EC, based on their group type.
EnergyCommunity.build_no_agg_utility!
— Methodbuild_no_agg_utility!(ECModel::AbstractEC, no_aggregator_group::AbstractGroupANC; base_model=nothing)
When in the CO case the ANC model is used as reference case for when the aggregator is not in the group, then this function builds the corresponding constraint
Arguments
ECModel::AbstractEC
: Cooperative EC Model of the EC to study.no_aggregator_group::AbstractGroupANC
: Type of the base case to considerbase_model::ModelEC
: Model of the base case to consider
Returns
SW
: JuMP expression of the Social Welfare
EnergyCommunity.build_no_agg_utility!
— Methodbuildnoaggutility!(ECModel::AbstractEC, noaggregator_group::AbstractGroupNC; kwargs...)
When the NC case is the reference value when no aggregator is available, then no changes in the model are required
Arguments
ECModel::AbstractEC
: Cooperative EC Model of the EC to study.no_aggregator_group::AbstractGroupNC
: Type of the base case to consider
Returns
SW
: JuMP expression of the Social Welfare; the same as in the input model
EnergyCommunity.build_no_agg_utility!
— Methodbuild_no_agg_utility!(ECModel::AbstractEC, no_aggregator_group::Any)
Not implemented case
EnergyCommunity.build_noagg_least_profitable!
— Methodbuild_noagg_least_profitable(ECModel::ModelEC; use_notations=false, optimizer=nothing, base_model=nothing)
Function to create a specialized model to identify the least profitable coalition for an energy community of ANC type.
Arguments
ECModel::ModelEC
: Model of the communityuse_notations::Bool=false
: Flag to use notations in the modeloptimizer::Optimizer=nothing
: Optimizer to usebase_model::ModelEC=nothing
: Model of the base case to consider
EnergyCommunity.build_specific_model!
— Methodbuild_specific_model!(::AbstractGroupANC, ECModel::AbstractEC)
Set the ANC-specific model for the EC
EnergyCommunity.build_specific_model!
— Methodbuild_specific_model!(::AbstractGroupCO, ECModel::AbstractEC)
Set the CO-specific model for the EC
EnergyCommunity.build_specific_model!
— Methodbuild_specific_model!(::AbstractGroupNC, ECModel::AbstractEC)
Set the NC-specific model for the EC. It adds the P_agg expression only being equal to the sum of the power supplied by the users to the grid.
Arguments
group_type::AbstractGroupNC
: The type of group modelECModel::AbstractEC
: The EC model to be built
Returns
ECModel::AbstractEC
: The EC model with the specific model built
EnergyCommunity.business_plan
— Functionbusiness_plan(ECModel::AbstractEC, profit_distribution=nothing, user_set_financial=nothing)
Function to describe the business plan
Arguments
ECModel::AbstractEC
: Energy Community modelprofit_distribution
: (optional) DenseAxisArray with the profit distribution by useruser_set_financial
: (optional) User set to be considered for the financial analysis
Returns
The output value is a DataFrame with the business plan information
EnergyCommunity.business_plan_plot
— Functionbusiness_plan_plot(ECModel::AbstractEC, ...)
Function to plot the business plan of the EnergyCommunity.
Arguments
ECModel::AbstractEC
: Energy Community modelprofit_distribution
: (optional) Dictionary with the profit distribution by useruser_set_financial
: (optional) User set to be considered for the financial analysisplot_struct
: (optional) Dictionary with the structure of the plot. The keys are the labels of the bars and the values are a list of tuples with the sign and the name of the variable to be plotted. Example isDict("CAPEX" => [(-1, :CAPEX)])
for plotting the CAPEX with a negative sign.xlabel
: (optional) Label for the x-axisylabel
: (optional) Label for the y-axistitle
: (optional) Title of the plotlegend
: (optional) Position of the legendcolor
: (optional) Color of the barsxrotation
: (optional) Rotation of the x-axis labelsbar_width
: (optional) Width of the barsgrid
: (optional) Grid visibilityframestyle
: (optional) Style of the framebarmode
: (optional) Mode of the barsscaling_factor
: (optional) Scaling factor for the valueskwargs
: (optional) Additional arguments to be passed to Plots.bar function
EnergyCommunity.calculate_demand
— Methodcalculate_demand(ECModel::AbstractEC)
Function to calculate the demand by user
Arguments
ECModel
: EC model object
Returns
It returns the demand by user and the whole EC as a DenseAxisArray
EnergyCommunity.calculate_grid_export
— Methodcalculate_grid_export(ECModel::AbstractEC; per_unit::Bool=true)
Calculate grid export for the energy community and users. Output is normalized with respect to the demand when per_unit is true
Returns
It returns a DenseAxisArray containing the power fed to the grid for each user and the whole aggregate
EnergyCommunity.calculate_grid_export
— Methodcalculate_grid_export(::AbstractGroupANC, ECModel::AbstractEC; per_unit::Bool=true)
Calculate grid export for the Aggregated Non Cooperative case. Output is normalized with respect to the demand when per_unit is true
Returns
It returns a DenseAxisArray containing the power fed to the grid for each user and the whole aggregate
EnergyCommunity.calculate_grid_export
— Methodcalculate_grid_export(::AbstractGroupCO, ECModel::AbstractEC; per_unit::Bool=true)
Calculate grid export for the Cooperative case. Output is normalized with respect to the demand when per_unit
is true
Returns
Returns a DenseAxisArray that contains the reliance on the grid supply for each user and the aggregation
EnergyCommunity.calculate_grid_export
— Methodcalculate_grid_export(::AbstractGroupNC, ECModel::AbstractEC; per_unit::Bool=true)
Calculate grid export for the Non-Cooperative case Output is normalized with respect to the demand when per_unit
is true
Returns
Returns a DenseAxisArray that contains the reliance on the grid supply for each user and the aggregation
EnergyCommunity.calculate_grid_import
— Methodcalculate_grid_import(ECModel::AbstractEC; per_unit::Bool=true)
Calculate grid usage for the energy community and users. Output is normalized with respect to the demand when per_unit is true
Returns
It returns a DenseAxisArray containing the power withdrawn from the grid for each user and the whole aggregate
EnergyCommunity.calculate_grid_import
— Methodcalculate_grid_import(::AbstractGroupANC, ECModel::AbstractEC; per_unit::Bool=true)
Calculate grid usage for the Aggregated Non Cooperative case. Output is normalized with respect to the demand when per_unit is true
Returns
It returns a DenseAxisArray containing the power withdrawn from the grid for each user and the whole aggregate
EnergyCommunity.calculate_grid_import
— Methodcalculate_grid_import(::AbstractGroupCO, ECModel::AbstractEC; per_unit::Bool=true)
Calculate grid usage for the Cooperative case. Output is normalized with respect to the demand when per_unit
is true
Returns
Returns a DenseAxisArray that describes the reliance on the grid withdrawal for each user and the aggregation
EnergyCommunity.calculate_grid_import
— Methodcalculate_grid_import(::AbstractGroupNC, ECModel::AbstractEC; per_unit::Bool=true)
Calculate grid usage for the Non Cooperative case. Output is normalized with respect to the demand when per_unit
is true
Returns
Returns a DenseAxisArray that describes the reliance on the grid withdrawal for each user and the aggregation
EnergyCommunity.calculate_production
— Methodcalculate_production(ECModel::AbstractEC)
Function to calculate the energy production by user
Arguments
ECModel
: EC model object
Returns
It returns the production by user and the whole EC as a DenseAxisArray
EnergyCommunity.calculate_production_shares
— Methodcalculate_production_shares(ECModel::AbstractEC; per_unit::Bool=true)
Calculate energy ratio by energy production resource for a generic group Output is normalized with respect to the demand when per_unit
is true
Arguments
ECModel
: EC model objectper_unit
: boolean; if true, the output is normalized with respect to the demand
Returns
It returns a DenseAxisArray describing the share of energy production by energy resource by user and the entire system, optionally normalized with respect to the demand of the corresponding group, when per_unit
is true
EnergyCommunity.calculate_self_consumption
— Methodcalculate_self_consumption(ECModel::AbstractEC; per_unit::Bool=true)
Calculate the demand that each user meets using its own sources, or self consumption. Output is normalized with respect to the demand when per_unit
is true
Arguments
ECModel
: EC model objectper_unit
: boolean; if true, the output is normalized with respect to the demand
Returns
It returns a DenseAxisArray describing the self consumption for each user and the aggregation, optionally normalized with respect to the demand of the corresponding group, when per_unit
is true
EnergyCommunity.calculate_self_production
— Methodcalculate_self_production(ECModel::AbstractEC; per_unit::Bool=true)
Calculate the self production for each user. Output is normalized with respect to the demand when per_unit
is true
Arguments
ECModel
: EC model objectper_unit
: boolean; if true, the output is normalized with respect to the demand
Returns
It returns a DenseAxisArray describing the self production for each user and the aggregation, optionally normalized with respect to the demand of the corresponding group, when per_unit
is true
EnergyCommunity.calculate_shared_consumption
— Methodcalculate_shared_consumption(ECModel::AbstractEC; per_unit::Bool=true)
Calculate the demand that each user meets using its own sources or other users. When onlyshared is false, also self consumption is considered, otherwise only shared consumption. Output is normalized with respect to the demand when perunit is true
Returns
It returns a DenseAxisArray containing the time-dependent share of power withdrawn from the grid but consumed by another user for each user and the whole aggregate
EnergyCommunity.calculate_shared_consumption
— Methodcalculate_shared_consumption(::AbstractGroupANC, ECModel::AbstractEC; per_unit::Bool=true, only_shared::Bool=false)
Calculate the demand that each user meets using its own sources or other users for the Aggregated Non Cooperative case. In this case, there can be shared energy, non only self consumption. When onlyshared is false, also self consumption is considered, otherwise only shared energy. Shared energy means energy that is shared between Output is normalized with respect to the demand when perunit is true
Returns
It returns a DenseAxisArray containing the time-dependent share of power withdrawn from the grid but produced by another user for each user and the whole aggregate
EnergyCommunity.calculate_shared_consumption
— Methodcalculate_shared_consumption(::AbstractGroupCO, ECModel::AbstractEC; per_unit::Bool=true, only_shared::Bool=false)
Calculate the demand that each user meets using its own sources or other users for the Cooperative case. In the Cooperative case, there can be shared energy, non only self consumption. When onlyshared is false, also self consumption is considered, otherwise only shared energy. Shared energy means energy that is shared between Output is normalized with respect to the demand when perunit is true
Returns
It returns the shared consumption for each user and the aggregation
EnergyCommunity.calculate_shared_consumption
— Methodcalculate_shared_consumption(::AbstractGroupNC, ECModel::AbstractEC; kwargs...)
Calculate the demand that each user meets using its own sources or other users for the Non-Cooperative case. In the Non-Cooperative case, there is no shared energy, only self consumption. Shared energy means energy that is shared between Output is normalized with respect to the demand when per_unit is true
Returns
It returns the shared consumption for each user and the aggregation
EnergyCommunity.calculate_shared_production
— Methodcalculate_shared_production(ECModel::AbstractEC; per_unit::Bool=true)
Calculate the energy that each user produces and uses in its own POD or it is commercially consumed within the EC, when creaded. When onlyshared is false, also self production is considered, otherwise only shared energy. Output is normalized with respect to the demand when perunit is true
Returns
It returns a DenseAxisArray containing the time-dependent share of power fed to the grid but consumed by another user for each user and the whole aggregate
EnergyCommunity.calculate_shared_production
— Methodcalculate_shared_production(::AbstractGroupANC, ECModel::AbstractEC; per_unit::Bool=true, only_shared::Bool=false)
Calculate the shared produced energy for the Aggregated Non Cooperative case. In this case, there can be shared energy between users, not only self production. When onlyshared is false, also self production is considered, otherwise only shared energy. Shared energy means energy that is shared between Output is normalized with respect to the demand when perunit is true
Returns
It returns a DenseAxisArray containing the time-dependent share of power fed to the grid but consumed by another user for each user and the whole aggregate
EnergyCommunity.calculate_shared_production
— Methodcalculate_shared_production(::AbstractGroupCO, ECModel::AbstractEC; per_unit::Bool=true, only_shared::Bool=false)
Calculate the shared produced energy for the Cooperative case. In the Cooperative case, there can be shared energy between users, not only self production. When onlyshared is false, also self production is considered, otherwise only shared energy. Shared energy means energy that is shared between Output is normalized with respect to the demand when perunit is true
Returns
It returns a DenseAxisArray that contains the shared energy for each user and the aggregation
EnergyCommunity.calculate_shared_production
— Methodcalculate_shared_production(::AbstractGroupNC, ECModel::AbstractEC; kwargs...)
Calculate the shared produced energy for the Non-Cooperative case. In the Non-Cooperative case, there is no shared energy between users, only self production. Output is normalized with respect to the demand when per_unit is true
Returns
It returns a DenseAxisArray that contains the shared energy for each user and the aggregation
EnergyCommunity.calculate_time_shared_consumption
— Methodcalculate_time_shared_consumption(ECModel::AbstractEC)
Calculate the time series of the shared consumed energy for the Energy Community.
For every time step and user, this time series highlight the quantity of load that is met by using shared energy.
Returns
It returns a DenseAxisArray containing the time-dependent share of power withdrawn from the grid but produced by another user for each user and the whole aggregate
EnergyCommunity.calculate_time_shared_consumption
— Methodcalculate_time_shared_consumption(::AbstractGroupANC, ECModel::AbstractEC; add_EC=true, kwargs...)
Calculate the time series of the shared consumed energy for the Aggregated Non Cooperative case. In the Aggregated Non Cooperative case, there can be shared energy between users, not only self production.
For every time step and user, this time series highlight the quantity of load that is met by using shared energy.
Returns
It returns a DenseAxisArray containing the time-dependent share of power withdrawn from the grid but produced by another user for each user and the whole aggregate
EnergyCommunity.calculate_time_shared_consumption
— Methodcalculate_time_shared_consumption(::AbstractGroupCO, ECModel::AbstractEC; add_EC=true, kwargs...)
Calculate the time series of the shared consumed energy for the Cooperative case. In the Cooperative case, there can be shared energy between users, not only self production.
For every time step and user, this time series highlight the quantity of load that is met by using shared energy.
Returns
It returns a DenseAxisArray that quantifies the shared consumption for each user and the aggregation and time step
EnergyCommunity.calculate_time_shared_consumption
— Methodcalculate_time_shared_consumption(::AbstractGroupNC, ECModel::AbstractEC; add_EC=true, kwargs...)
Calculate the time series of the shared consumed energy for the Cooperative case. In the Cooperative case, there can be shared energy between users, not only self production.
For every time step and user, this time series highlight the quantity of load that is met by using shared energy.
Returns
It returns a DenseAxisArray that quantifies the shared consumption for each user and the aggregation and time step
EnergyCommunity.calculate_time_shared_production
— Methodcalculate_time_shared_production(ECModel::AbstractEC; kwargs...)
Calculate the time series of the shared consumed energy for the Energy Community.
For every time step and user, this time series highlight the quantity of production that meets needs by other users.
Returns
It returns a DenseAxisArray containing the time-dependent share of power fed to the grid but consumed by another user for each user and the whole aggregate
EnergyCommunity.calculate_time_shared_production
— Methodcalculate_time_shared_production(::AbstractGroupANC, ECModel::AbstractEC; add_EC=true, kwargs...)
Calculate the time series of the shared produced energy for the Aggregated Non Cooperative case. In the Aggregated Non Cooperative case, there can be shared energy between users, not only self production.
For every time step and user, this time series highlight the quantity of production that meets needs by other users.
Returns
It returns a DenseAxisArray containing the time-dependent share of power fed to the grid but consumed by another user for each user and the whole aggregate
EnergyCommunity.calculate_time_shared_production
— Methodcalculate_time_shared_production(::AbstractGroupCO, ECModel::AbstractEC; add_EC=true, kwargs...)
Calculate the time series of the shared produced energy for the Cooperative case. In the Cooperative case, there can be shared energy between users, not only self production.
For every time step and user, this time series highlight the quantity of production that meets needs by other users.
Returns
Returns a DenseAxisArray that contains the shared production for each user and the aggregation and time step
EnergyCommunity.calculate_time_shared_production
— Methodcalculate_time_shared_production(::AbstractGroupNC, ECModel::AbstractEC; add_EC=true, kwargs...)
Calculate the time series of the shared produced energy for the Cooperative case. In the Cooperative case, there can be shared energy between users, not only self production.
For every time step and user, this time series highlight the quantity of production that meets needs by other users.
Returns
Returns a DenseAxisArray that contains the shared production for each user and the aggregation and time step
EnergyCommunity.check_valid_data_dict
— Methodcheck_valid_data_dict(raw_dict_data::Dict)
Check whether the dictionary data has the needed components. The dictionary must have the keys "general", "users", and "market".
EnergyCommunity.component
— MethodFunction to get the components value of a dictionary
EnergyCommunity.components
— MethodFunction to get the components list of a dictionary
EnergyCommunity.create_example_data
— Methodcreate_example_data(parent_folder, config_name::String = "default")
Create an example data for the Energy Community model. This function creates in the specified folder the necessary data to run the Energy Community model, based on the specified configuration name.
Arguments
parent_folder
: Parent folder where the example data will be createdconfig_name
: Configuration name to be used to create the example data Supported values: "default"
EnergyCommunity.create_output_data
— Methodcreate_output_data(ecm_copy::ModelEC, number_of_solutions)
Function to create output data after the optimization for TheoryOfGames.jl. This functions obtains multiple solutions out of the optimization.
Arguments
ecm_copy::ModelEC
: Model of the communitynumber_of_solutions::Int
: Number of solutions to return
Returns
output_data::Vector{NamedTuple}
: Output data
EnergyCommunity.data_sankey
— Methoddata_sankey(ECModel::AbstractEC; name_units=nothing, norm_value=nothing, market_color = palette(:rainbow)[2], community_color = palette(:rainbow)[5], users_colors = palette(:default))
Function to create the input data for plotting any Sankey diagram representing the energy flows across the energy community
Arguments
ECModel::AbstractEC
: Energy Community modelname_units
: (optional) Labels used for the sankey diagram with the following order: "Market buy", [users labels], "Community", "Market sell", [users labels]norm_value
: (optional) Normalization value for the flowsmarket_color
: (optional) Color of the marketcommunity_color
: (optional) Color of the communityusers_colors
: (optional) Colors of the users
Returns
sank_data
: Dictionary containing the data to plot the Sankey diagram, in agreement to SankeyPlots.jl package- "source": sources of the Sankey
- "target": targets of the Sankey
- "value": value of each flow
- "labels": labels of the Sankey
- "colors": colors of the Sankey
- "layer": layer of the Sankey
- "order": order of the Sankey
EnergyCommunity.device_names
— MethodFunction to get the list of devices for a user
EnergyCommunity.explode_data
— Methodexplode_data(ECModel::AbstractEC)
Return main data elements of the dataset of the ECModel
: general parameters, users data and market data, retrieved from the data
dictionary of the ECModel
.
Arguments
ECModel::AbstractEC
: Energy Community model
Returns
general_data::Dict
: General data of the ECModelusers_data::Dict
: Users data of the ECModelmarket_data::Dict
: Market data of the ECModel
EnergyCommunity.explode_data
— MethodReturn main data elements of the dataset: general parameters, users data and market data
EnergyCommunity.field
— FunctionFunction get field that throws an error if the field is not found
EnergyCommunity.field_component
— MethodFunction to get the components value of a dictionary, with default value
EnergyCommunity.field_component
— MethodFunction to get the components value of a dictionary
EnergyCommunity.field_d
— FunctionFunction to safely get a field of a dictionary with default value
EnergyCommunity.finalize_results!
— Methodfinalize_results!(::AbstractGroupANC, ECModel::AbstractEC)
Function to finalize the results of the Aggregated Non Cooperative model after the execution
EnergyCommunity.finalize_results!
— Methodfinalize_results!(::AbstractGroupCO, ECModel::AbstractEC)
Function to finalize the results of the Cooperative model after the execution Nothing to do
EnergyCommunity.finalize_results!
— Methodfinalize_results!(::AbstractGroupNC, ECModel::AbstractEC)
Function to finalize the results of the Non Cooperative model after the execution Many of the variables are set to zero due to the absence of cooperation between users
EnergyCommunity.general
— MethodFunction to get the general parameters
EnergyCommunity.generator_names
— MethodFunction to get the list of generators for a user
EnergyCommunity.get_annotations
— Methodget_annotations(ECModel::AbstractEC)
Get annotations for Benders decomposition
EnergyCommunity.get_group_type
— Methodget_group_type(ECModel::AbstractEC)
Returns the EC group type
EnergyCommunity.get_subproblem_vars_by_user
— Methodget_subproblem_vars_by_user(var::Containers.DenseAxisArray{T}, u_name) where T <: VariableRef
Get variables related to the user u_name
for a DenseAxisArray
EnergyCommunity.get_subproblem_vars_by_user
— Methodget_subproblem_vars_by_user(var::Containers.SparseAxisArray{T}, u_name) where T <: VariableRef
Get variables related to the user u_name
for a SparseAxisArray
EnergyCommunity.get_user_set
— Methodget_user_set(ECModel::AbstractEC)
Returns the EC user set
EnergyCommunity.has_any_asset
— FunctionFunction to check whether an user has any asset
EnergyCommunity.has_asset
— MethodFunction to check whether an user has an asset type
EnergyCommunity.has_asset
— MethodFunction to check whether an user has an asset given its name
EnergyCommunity.has_component
— MethodFunction to know if a dictionary has a particular component
EnergyCommunity.has_type
— MethodAuxiliary function to check if the key 'type' is available in the dictionary d, otherwise false
EnergyCommunity.load!
— Methodload!(output_file::AbstractString, ECModel::AbstractEC)
Loads the Energy Community model stored in the file specified by output_file
and updates the relevant fields of ECModel
. This function performs basic checks on the loaded data, verifying the existence of the necessary keys ("data", "userset", "grouptype", "results"), and restores the model components (such as data, users_data, and results) accordingly.
EnergyCommunity.market
— MethodFunction to get the market configuration
EnergyCommunity.market_profile_by_user
— Methodmarket_profile_by_user(ECModel::AbstractEC, u_name, profile_name)
Function to retrieve the market profile of each user, according to their market type (e.g. commercial, domestic, etc.)
Arguments
ECModel
: EC model objectu_name
: user nameprofile_name
: profile name
Returns
It returns the vector of data corresponding to the profile of the user according to the market type
EnergyCommunity.name
— Methodname(model::AbstractEC)
Return the name of the model.
EnergyCommunity.name
— Methodname(model::ModelEC)
Return the name of the model.
EnergyCommunity.objective_by_user
— Methodobjective_by_user(ECModel::AbstractEC; add_EC=true)
Returns the objective function by user; when add_EC
is true, the EC is added to the user set
EnergyCommunity.objective_by_user
— MethodFunction to return the objective function by user in the Aggregated Non Cooperative case
EnergyCommunity.objective_by_user
— MethodFunction to return the objective function by user in the Cooperative case
EnergyCommunity.objective_by_user
— MethodFunction to return the objective function by user in the NonCooperative case
EnergyCommunity.parse_dataprofile
— MethodFunction to throw error for unformatted data
EnergyCommunity.parse_dataprofile
— MethodFunction to parse a string value of a profile to load the corresponding dataframe
EnergyCommunity.parse_dataprofile
— MethodFunction to parse a personalized processing to generate the data When profile_value is a dictionary, then the user is asking a custom processing of data by a function
EnergyCommunity.parse_dataprofile
— MethodFunction to parse a string value of a profile to load the corresponding dataframe
EnergyCommunity.parse_dataprofile
— MethodFunction to parse a string value of a profile to load the corresponding dataframe
EnergyCommunity.parse_peak_quantity_by_time_vectors
— MethodFunction to parse the peak power categories and tariff
EnergyCommunity.plot_sankey
— Methodplot_sankey(ECModel::AbstractEC, sank_data::Dict; label_size = 10)
Function to plot the Sankey diagram representing the energy flows across the energy community. This function can be used to plot the sankey diagram of already processed data sank_data.
Arguments
ECModel::AbstractEC
: Energy Community modelsank_data::Dict
: Dictionary containing the data to plot the Sankey diagram, in agreement to SankeyPlots.jl package
EnergyCommunity.plot_sankey
— Methodfunction plot_sankey(ECModel::AbstractEC; name_units=nothing, norm_value=nothing, market_color=palette(:rainbow)[2], community_color=palette(:rainbow)[5], users_colors=palette(:default), label_size=10)
Function to plot the Sankey diagram representing the energy flows across the energy community
Arguments
ECModel::AbstractEC
: Energy Community modelname_units
: (optional) Labels used for the sankey diagram with the following order: "Market buy", [users labels], "Community", "Market sell", [users labels]norm_value
: (optional) Normalization value for the flowsmarket_color
: (optional) Color of the marketcommunity_color
: (optional) Color of the communityusers_colors
: (optional) Colors of the userslabel_size
: (optional) Size of the labels in the Sankey diagram
EnergyCommunity.prepare_summary
— Methodprepare_summary(::AbstractGroupANC, ECModel::AbstractEC;
user_set::Vector=Vector())
Save base excel file with a summary of the results for the Aggregated Non Cooperative case
EnergyCommunity.prepare_summary
— Methodprepare_summary(::AbstractGroupCO, ECModel::AbstractEC; user_set::Vector=Vector())
Save base excel file with a summary of the results for the Cooperative case
EnergyCommunity.prepare_summary
— Methodprepare_summary(::AbstractGroupNC, ECModel::AbstractEC, file_summary_path::AbstractString;
user_set::Vector=Vector())
Prepare the dataframe lists to be saved in an excel file.
Arguments
group_type::AbstractGroupNC
: The type of group modelECModel::AbstractEC
: The EC model to be builtfile_summary_path::AbstractString
: The file path where to save the excel fileuser_set::AbstractVector
: The user set to be considered
Returns
output_list::Vector
: The list of dataframes to be saved in the excel file
EnergyCommunity.print_summary
— Methodprint_summary(ECModel::AbstractEC; kwargs...)
Function to print a summary of the results of the model. The function dispatches the execution to the appropriate function depending on the Aggregation type of the EC
EnergyCommunity.print_summary
— Methodprint_summary(::AbstractGroupANC, ECModel::AbstractEC)
Function to print the main results of the model
EnergyCommunity.print_summary
— Methodprint_summary(::AbstractGroupCO, ECModel::AbstractEC)
Function to print the main results of the model
EnergyCommunity.print_summary
— Methodprint_summary(::AbstractGroupNC, ECModel::AbstractEC)
Function to print the main results of the model
Arguments
group_type::AbstractGroupNC
: The type of group modelECModel::AbstractEC
: The EC model to be built
EnergyCommunity.profile
— MethodFunction to get a specific profile
EnergyCommunity.profile_component
— MethodFunction to get a specific profile
EnergyCommunity.profiles
— MethodFunction to get the profile dictionary
EnergyCommunity.read_input
— MethodFunction to read the input of the optimization model described as a yaml file
EnergyCommunity.reset_user_set!
— Methodreset_user_set!(ECModel::AbstractEC)
Reset the EC user set to match the stored user_set
of the ECModel
data
EnergyCommunity.save_summary
— Methodsave_summary(ECModel::AbstractEC, output_file::AbstractString; kwargs...)
Function to save a summary of the results of the model. The function dispatches the execution to the appropriate function depending on the Aggregation type of the EC
EnergyCommunity.set_group_type!
— Methodset_group_type!(ECModel::AbstractEC)
Sets the EC group type
EnergyCommunity.set_least_profitable_profit!
— Methodset_least_profitable_profit!(ECModel::AbstractEC, profit_distribution)
Function to set the profit distribution of the least profitable problem.
Arguments
ECModel::AbstractEC
: Model of the communityprofit_distribution::AbstractDict
: Profit distribution per user
EnergyCommunity.set_objective!
— MethodFunction to set the objective function of the model of the Aggregated-Non-Cooperative model
EnergyCommunity.set_objective!
— Methodset_objective!(::AbstractGroupCO, ECModel::AbstractEC)
Set the objective for the cooperative approach
EnergyCommunity.set_objective!
— Methodset_objective!(::AbstractGroupNC, ECModel::AbstractEC)
Function to set the objective function of the model of the Non-Cooperative model, which is to maximize the annual profits of all users.
Arguments
group_type::AbstractGroupNC
: The type of group modelECModel::AbstractEC
: The EC model to be built
Returns
ECModel::AbstractEC
: The EC model with the objective set
EnergyCommunity.set_user_set!
— Methodset_user_set(ECModel::AbstractEC)
Sets the EC user set
EnergyCommunity.split_financial_terms
— Functionsplit_financial_terms(ECModel::AbstractEC, profit_distribution=nothing)
Function to describe the cost term distributions for each user. Each entry that follows is DenseAxisArray for an economic parameter by user.
Arguments
ECModel::AbstractEC
: Energy Community modelprofit_distribution
: (optional) DenseAxisArray with the profit distribution by user
Returns
The output value is a NamedTuple with the following elements:
NPV
: the NPV of each user given the final profit_distribution adjustment by game theoryCAPEX
: the annualized CAPEXOPEX
: the annualized operating costs (yearly maintenance and yearly peak and energy grid charges)REP
: the annualized replacement costsRV
: the annualized recovery chargesREWARD
: the annualized reward distribution by userPEAK
: the annualized peak costsEN_SELL
: the annualized revenues from energy salesEN_BUY
: the annualized costs from energy consumption and buyingEN_NET
: the annualized net energy costs
EnergyCommunity.split_yearly_financial_terms
— Functionsplityearlyfinancialterms(ECModel::AbstractEC, profitdistribution)
Function to describe the cost term distributions by all users for year. It returns major economic inputs summed across users and the community by year.
Arguments
ECModel::AbstractEC
: Energy Community modelprofit_distribution
: (optional) DenseAxisArray with the profit distribution by user
Returns
The output value is a NamedTuple with the following elements:
NPV
: the NPV of each user given the final profit_distribution adjustment by game theoryCAPEX
: the CAPEX by yearOPEX
: the operating costs by year (yearly maintenance and yearly peak and energy grid charges)REP
: the replacement costs by yearRV
: the recovery charges by yearREWARD
: the reward distribution by yearPEAK
: the peak costs by yearEN_SELL
: the revenues from energy sales by yearEN_BUY
: the costs from energy consumption and buying by yearEN_NET
: the net energy costs by yearyear_set
: the list of years under consideration
EnergyCommunity.to_least_profitable_coalition_callback
— Methodto_least_profitable_coalition_callback(
ECModel::AbstractEC,
base_group::AbstractGroup;
no_aggregator_group::AbstractGroup=GroupNC(),
optimizer=nothing,
raw_outputs=false,
number_of_solutions=1,
relax_combinatorial=false,
use_notations=false,
callback_solution=Dict(),
branching_priorities=true,
decompose_ANC=true,
decompose_rel_tolerance=0.05,
decompose_abs_tolerance=1e-2,
kwargs...
)
Function that returns a callback function that, given as input a profit distribution scheme, returns the coalition that has the least benefit in remaining in the grand coalition. The returned function least_profitable_coalition_callback
accepts an AbstractDict
as argument that specifies the profit distribution by user that is used to compute the least benefit procedure.
Arguments
ECModel::AbstractEC
: Cooperative EC Model of the EC to study. When the model is not cooperative an error is thrown.base_group::AbstractGroup
: Base group with respect the benefit is calculatedno_aggregator_group::AbstractGroup=GroupNC()
: Type of aggregation group of the community when no aggregator is availableoptimizer::Optimizer=nothing
: Optimizer to useraw_outputs::Bool=false
: Flag to return raw outputs; see return section for more detailsnumber_of_solutions::Int=1
: Number of solutions to return from each iteration; whennumber_of_solutions <= 0
all solutions are returnedrelax_combinatorial::Bool=false
: Flag to relax the combinatorial part of the MILP modeluse_notations::Bool=false
: Flag to use notations in the modelcallback_solution::Dict()
: Dictionary of callbacks depending on the termination status of the optimization. Keys shall be of type JuMP.TerminationStatusCode, and outputs a function with as argument a ModelECbranching_priorities::Bool=true
: Option to specify if add the branching prioritiesdecompose_ANC::Bool=true
: When True, if the noaggregatorgroup is ANC and, then the main optimization model is decomposed into two models: (a) when no Aggregator is in the coalition and (b) when the aggregator is in the coalition. In this case, (a) is optimized first and if the optimization is beyond a given threshold, the execution is terminated without optimizing (b). The threshold is provided as an optional input in the callback function returned by the function. Otherwise the optimization continues with (b).decompose_rel_tolerance=0.05
: Relative tolerance of thedecompose_ANC
proceduredecompose_abs_tolerance=1e-2
: Absolute tolerance of thedecompose_ANC
procedure
Returns
least_profitable_coalition_callback
: Function that accepts as input an AbstractDict representing the benefit distribution by userecm_copy
: (whenraw_outputs=true
) ModelEC copy of the ECModel, used in the callback function
EnergyCommunity.to_objective_callback_by_subgroup
— Methodto_objective_callback_by_subgroup(ECModel::AbstractEC)
Function that returns a callback function that quantifies the objective of a given subgroup of users The returned function objective_func accepts as arguments an AbstractVector of users and returns the objective of the aggregation for any model
Arguments
ECModel::AbstractEC
: Cooperative EC Model of the EC to study. When the model is not cooperative an error is thrown.
Returns
objective_callback_by_subgroup
: Function that accepts as input an AbstractVector (or Set) of users and returns as output the benefit of the specified community
EnergyCommunity.to_objective_callback_by_subgroup
— Methodto_objective_callback_by_subgroup(::AbstractGroupANC, ECModel::AbstractEC; base_model=nothing, kwargs...)
Function that returns a callback function that quantifies the objective of a given subgroup of users The returned function objective_func accepts as arguments an AbstractVector of users and returns the objective of the aggregation for Aggregated Non Cooperative models
Arguments
group_type
: The type of group modelECModel
: EC Model of the EC to study. When the model is not cooperative an error is thrown.base_model
: EC Model (optional). When provided, it represents the base model used to perform the calculations
Returns
It returns a function that accepts as input an AbstractVector (or Set) of users and returns as output the benefit of the specified community
EnergyCommunity.to_objective_callback_by_subgroup
— Methodto_objective_callback_by_subgroup(::AbstractGroupCO, ECModel::AbstractEC)
Function that returns a callback function that quantifies the objective of a given subgroup of users The returned function objective_func accepts as arguments an AbstractVector of users and returns the objective of the aggregation for Aggregated Cooperative models
Arguments
group_type
: The type of group modelECModel
: Cooperative EC Model of the EC to study. When the model is not cooperative an error is thrown.no_aggregator_group
(optional, default NonCooperative): EC group type when no aggregator is considered
Returns
It returns a function that accepts as input an AbstractVector (or Set) of users and returns as output the benefit of the specified community
EnergyCommunity.to_objective_callback_by_subgroup
— Methodto_objective_callback_by_subgroup(::AbstractGroupNC, ECModel::AbstractEC)
Function that returns a callback function that quantifies the objective of a given subgroup of users The returned function objective_func accepts as arguments an AbstractVector of users and returns the objective of the aggregation for Non Cooperative models
Arguments
group_type
: The type of group modelECModel
: Cooperative EC Model of the EC to study. When the model is not cooperative an error is thrown.
Returns
It returns a function that accepts as input an AbstractVector (or Set) of users and returns as output the benefit of the specified community
EnergyCommunity.to_utility_callback_by_subgroup
— Methodto_utility_callback_by_subgroup(
ECModel::AbstractEC, base_group_type::AbstractGroup;
no_aggregator_group::AbstractGroup=GroupNC(),
kwargs...
)
Function that returns a callback function that quantifies the benefit of a given subgroup of users The returned function utility_func accepts as arguments an AbstractVector of users and returns the benefit with respect to the base case of the users optimized independently
Arguments
ECModel::AbstractEC
: Cooperative EC Model of the EC to study.base_group_type::AbstractGroup
: Type of the base case to considerno_aggregator_group::AbstractGroup=GroupNC()
: EC group type for when no aggregator is considered
Returns
utility_callback_by_subgroup::Function
: Function that accepts as input an AbstractVector (or Set) of users and returns as output the benefit of the specified community
EnergyCommunity.user_names
— MethodGet the list of users
EnergyCommunity.users
— MethodFunction to get the users configuration
FileIO.load
— Methodload(output_file::AbstractString, ECModel::AbstractEC)
Function to save the results and the model to the hard drive; ECModel is not modified. The function saves data, userset, grouptype and results of the ECModel in a dictionary and then saves the dictionary in the output_file.
FileIO.save
— Methodsave(output_file::AbstractString, ECModel::AbstractEC)
Function to save the results and the model to the hard drive. The function saves data, userset, grouptype and results of the ECModel in a dictionary and then saves the dictionary in the output_file.
JuMP.objective_function
— Methodobjective_function(ECModel::AbstractEC)
Gets the objective function of the model
JuMP.objective_value
— MethodJuMP.objective_value(ECModel::AbstractEC)
Returns the objective value of the EC model
JuMP.optimize!
— MethodJuMP.optimize!(ECModel::AbstractEC)
Solve the optimization problem for the EC. It optimizes the model of the EC and stores the results in the results
attribute of the ECModel
.
JuMP.result_count
— MethodJuMP.result_count(ECModel::AbstractEC)
Returns the result count of the JuMP model of the EC model
JuMP.termination_status
— Methodtermination_status(ECModel::AbstractEC)
Calculates the optimization status of the model
RecipesBase.plot
— FunctionPlots.plot(ECModel::ModelEC, output_plot_file::AbstractString="")
Function to plot the EC model
RecipesBase.plot
— MethodPlots.plot(::AbstractGroupANC, ECModel::AbstractEC, output_plot_file::AbstractString;
user_set::AbstractVector = Vector(), line_width = 2.0)
Function to plot the results of the Aggregated non cooperative configuration
RecipesBase.plot
— MethodPlots.plot(::AbstractGroupCO, ECModel::AbstractEC, output_plot_file::AbstractString;
user_set::AbstractVector = Vector(), line_width = 2.0)
Function to plot the results of the Cooperative EC
RecipesBase.plot
— MethodPlots.plot(::AbstractGroupNC, ECModel::AbstractEC, output_plot_file::AbstractString;
user_set::Vector=Vector(), line_width=2.0)
Function to plot the results of the user model
Arguments
group_type::AbstractGroupNC
: The type of group modelECModel::AbstractEC
: The EC model to be builtoutput_plot_file::AbstractString
: The file path where to save the plotsuser_set::Vector
: The user set to plotline_width::Float64
: The width of the lines in the plot
EnergyCommunity.ASSET_TYPE
— Type@enum ASSET_TYPE
Enumeration type to specify the type of the assets. Implemented values:
- LOAD: load components
- REN: renewable assets
- BATT: battery components
- CONV: battery converters
- THER: thermal generators
EnergyCommunity.AbstractEC
— TypeAbstractEC
Abstract type for an EnergyCommunity model.
EnergyCommunity.AbstractGroup
— TypeAbstractGroup
Abstract type for the group model; it is the parent of the three types of group models: Cooperative, Non-Cooperative, and Aggregated Non-Cooperative.
EnergyCommunity.GroupANC
— TypeGroupANC <: AbstractGroupANC
Concrete type for the Aggregated Non-Cooperative group model.
EnergyCommunity.GroupCO
— TypeGroupCO <: AbstractGroupCO
Concrete type for the Cooperative group model.
EnergyCommunity.GroupNC
— TypeGroupNC <: AbstractGroupNC
Concrete type for the Non-Cooperative group model.
EnergyCommunity.ModelEC
— TypeModelEC <: AbstractEC
Concrete type for an EnergyCommunity model.
Attributes
data::Dict
: All datagen_data::Dict
: general datamarket_data::Dict
: market datausers_data::Dict
: users datagroup_type
: aggregation type of modeluser_set::Vector
: desired user setmodel::Model
: JuMP modeloptimizer
: optimizer of the JuMP modelresults::Dict
: results of the model in Dictionary format
EnergyCommunity.ModelEC
— TypeModelEC(model_copy::ModelEC, group_type=nothing, optimizer=nothing, user_set=nothing)
Copy constructor; it copies the data from model_copy
and changes the group type, optimizer, and user set if specified.
Arguments
model_copy::ModelEC
: model to copygroup_type=nothing
: aggregation type of model; default is the same asmodel_copy
optimizer=nothing
: optimizer of the JuMP model; default is the same asmodel_copy
user_set=nothing
: desired user set; default is the same asmodel_copy
EnergyCommunity.ModelEC
— TypeModelEC(data::Dict=ZERO_DD, group_type=GroupNC(), optimizer=nothing, user_set::Vector=Vector())
Constructor of a ModelEC.
Arguments
data::Dict=ZERO_DD
: All data; a dictionary with the keys "general", "users", and "market"group_type
: aggregation type of modeloptimizer
: optimizer of the JuMP modeluser_set::Vector
: desired user set
EnergyCommunity.ModelEC
— TypeModelEC(file_name::AbstractString, group_type, optimizer=nothing)
Load EnergyCommunity model from disk
Arguments
file_name::AbstractString
: name of the file to load the datagroup_type
: aggregation type of modeloptimizer
: optimizer of the JuMP model
TheoryOfGames.EnumMode
— MethodTheoryOfGames.EnumMode(ECModel::AbstractEC, base_group::AbstractGroup; verbose::Bool=true, kwargs...)
Function to create the EnumMode item for the TheoryOfGames.jl package.
Arguments
ECModel::AbstractEC
: Cooperative EC Model of the EC to study.base_group::AbstractGroup
: Type of the base case to considerverbose::Bool=true
: Flag to print the resultskwargs...
: Additional arguments
Returns
enum_mode
: TheoryOfGames.EnumMode object
TheoryOfGames.IterMode
— MethodTheoryOfGames.IterMode(
ECModel::AbstractEC,
base_group_type::AbstractGroup;
no_aggregator_type::AbstractGroup=GroupNC(),
optimizer=nothing,
number_of_solutions=0,
use_notations=false,
decompose_ANC=true,
decompose_abs_tolerance=1e-4,
decompose_rel_tolerance=1e-4,
kwargs...
)
Function to create the IterMode item for the TheoryOfGames.jl package
Arguments
ECModel::AbstractEC
: Cooperative EC Model of the EC to study.base_group_type::AbstractGroup
: Type of the base case to considerno_aggregator_type::AbstractGroup=GroupNC()
: Type of the base case to consider when no aggregator is availableoptimizer::Optimizer=nothing
: Optimizer to usenumber_of_solutions::Int=0
: Number of solutions to return from each iteration; whennumber_of_solutions <= 0
all solutions are returneduse_notations::Bool=false
: Flag to use notations in the modeldecompose_ANC::Bool=true
: When True, if the noaggregatorgroup is ANC and, then the main optimization model is decomposed into two models. Seeto_least_profitable_coalition_callback
for more detailsdecompose_rel_tolerance=0.05
: Relative tolerance of thedecompose_ANC
proceduredecompose_abs_tolerance=1e-2
: Absolute tolerance of thedecompose_ANC
procedurekwargs...
: Additional arguments
Returns
iter_mode
: TheoryOfGames.IterMode object